home *** CD-ROM | disk | FTP | other *** search
- asm("
- .globl _div
- .globl _ldiv
- .globl ___modsi3
- .globl ___divsi3
-
- | D1.L = D0.L % D1.L signed
-
- ___modsi3: moveml sp@(4:W),d0/d1
- jbsr ___divsi4
- movel d1,d0
- rts
-
- | D0.L = D0.L / D1.L signed
-
- _div:
- _ldiv:
- ___divsi3: moveml sp@(4:W),d0/d1
- ___divsi4:"
-
- #if defined(amigados)
-
- #ifndef SMALL_DATA
- "
- movel _UtilityBase,a0"
- #else
- "
- movel a4@(_UtilityBase:W),a0"
- #endif
- "
- jmp a0@(-150:W)"
-
- #else
-
- " movel d3,sp@-
- movel d2,sp@-
- moveq #0,d2
- tstl d0
- bpls LC5
- negl d0
- addql #1,d2
- LC5: movel d2,d3
- tstl d1
- bpls LC4
- negl d1
- eoriw #1,d3
- LC4: jbsr ___udivsi4
- LC3: tstw d2
- beqs LC2
- negl d0
- LC2: tstw d3
- beqs LC1
- negl d1
- LC1: movel sp@+,d2
- movel sp@+,d3
- rts"
-
- #endif
- );
-